// *** ADDED BY HEADER FIXUP ***
#include <exception>
#include <string>
// *** END ***
#include "ComandosNegociosLogin.h"

void ComandosNegociosLogin::executar(const Email& mail,const Senha& senha,RetornoInfo& RL)
{

    ComandoLerNome      CMDLN(mail);
    ComandoLerSenha     CMDLS(mail);
    ComandoLerNiver     CMDLA(mail);
    ComandoLerIdade     CMDLI(mail);
    ComandoLerClearance CMDLC(mail);
    try
    {
        CMDLS.executar();
        string SenhaRecuperada;
        SenhaRecuperada = CMDLS.getResultado();
        if(senha.getValor()==SenhaRecuperada)
        {
            try
            {

                CMDLN.executar();
                RL.nome      = CMDLN.getResultado();
                CMDLA.executar();
                RL.niver     = CMDLA.getResultado();
                CMDLI.executar();
                RL.idade     = CMDLI.getResultado();
                CMDLC.executar();
                RL.clearance = CMDLC.getResultado();
                RL.email     = mail.getValor();
                RL.senha     = SenhaRecuperada;
            }
            catch(EErroPersistencia &exp)
            {
                throw exp;
            }
        }
        else
        {
            throw exception();
        }
    }
    catch(exception &e)
    {
        throw e;
    }
    catch(EErroPersistencia &exp)
    {
        throw exp;
    }
}
